package thefirst.LessonBoard.model;

import java.sql.SQLException;
import java.util.List;

import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import thefirst.common.PagingBean;

@Service
public class LessonBoardServiceImpl implements LessonBoardService {
	@Resource(name = "lessonBoardDaoImpl")
	private LessonBoardDao lessonBoardDao;
/**
 * 수업 글쓰기
 */
	@Override
	public void writeLessonBoard(LessonBoardVO lbvo) throws SQLException {
		//System.out.println("writeLessonBoard Service : "+ lbvo);
		lessonBoardDao.writeLessonBoard(lbvo);
	}
/**
 * 총 게시물 리스트
 * 페이지 번호가 null이면 1로 셋팅한다.
 * 총게시물 수를 가져와서 total에 세팅
 * 페이징한다.
 */
	@Override
	public LessonBoardListVO getLessonBoardList(String pageNo)
			throws SQLException {

		if (pageNo == null || pageNo == "") {
			pageNo = "1";
		}
		List<LessonBoardVO> list = lessonBoardDao.getLessonBoardList(pageNo);
		int total=lessonBoardDao.totalLessonContent();
		PagingBean paging = new PagingBean(total, Integer.parseInt(pageNo));
		LessonBoardListVO lbList = new LessonBoardListVO(list, paging);
		return lbList;
	}
/**
 * 게시물 상세정보
 * 조회수는 올라가지 않는다.
 */
	@Override
	public LessonBoardVO showLessonBoardInfoNoHits(LessonBoardVO lvo) throws SQLException {
		LessonBoardVO lbvo=lessonBoardDao.showLessonBoardInfoNoHits(lvo);
		//System.out.println("showLessonBoardInfoNoHits Service : "+lbvo);
		return lbvo;
	}
/**
 * 게시물 상세정보
 * 조회수를 올린다.
 */
	@Override
	public LessonBoardVO showLessonInfo(LessonBoardVO lvo) throws SQLException {
		int result=lessonBoardDao.updateHits(lvo);
		LessonBoardVO lbvo=lessonBoardDao.showLessonBoardInfoNoHits(lvo);
		return lbvo;
	}
/**
 * 게시물 삭제
 */
	@Override
	public void deleteLessonContent(LessonBoardVO lvo) throws SQLException {
		lessonBoardDao.deleteLessonContent(lvo);
		
	}
/**
 * 게시물 수정
 */
	@Override
	public int updateBoardContent(LessonBoardVO lvo)
			throws SQLException {
		return lessonBoardDao.updateBoardContent(lvo);
	}
/**
 * 게시물 검색
 * 페이지 번호가 null이면 1로 셋팅
 * 검색한 게시물의 총 갯수를 total에 셋팅
 * 페이징한다.
 */
	@Override
	public LessonBoardListVO searchLesson(LessonBoardVO lvo) throws SQLException {
		if(lvo.getPageNo() ==null){// null 이 아니면 int 형으로 변환한 후 페이지 번호를 할당한다.
			lvo.setPageNo("1");	//페이지번호를 1로 setting
			
		}
		List<?> slblist=lessonBoardDao.searchLessonBoard(lvo);
		int total=lessonBoardDao.searchCount(lvo);
		PagingBean pagingBean=new PagingBean(total, Integer.parseInt(lvo.getPageNo()));
		return  new LessonBoardListVO(slblist, pagingBean);
	}
	
	/**
	 * 선생님의 아이디와 수업 번호를 받아서 담임선생님 정보와 연결 상태를 업데이트 한다.
	 */
	@Override
	public LessonBoardVO acceptSelectedList(LessonBoardVO lbvo) throws SQLException {
		// TODO Auto-generated method stub
		lessonBoardDao.acceptSelectedList(lbvo);
		return lessonBoardDao.getConnectstate(lbvo);
	}
	
	/**
	 * 선생님의 아이디와 수업번호를 받아서 해당하는 정보를 null 로 업데이트 한다.
	 */
	@Override
	public LessonBoardVO rejectSelectedList(LessonBoardVO lbvo) throws SQLException {
		// TODO Auto-generated method stub
		 lessonBoardDao.rejectSelectedList(lbvo);
		 return lessonBoardDao.getConnectstate(lbvo);
	}
	
	/**
	 * 선생님 이름을 클릭했을 때 선생님의 정보를 받아오기 전에 학생의 수업 연결상태를 파악한다.
	 */
	@Override
	public LessonBoardVO getConnectstate(LessonBoardVO lbvo) throws SQLException {
		// TODO Auto-generated method stub
		return lessonBoardDao.getConnectstate(lbvo);
	}
/**
 * 메인페이지에 쓸 최신 게시물리스트
 */
	@Override
	public List<LessonBoardVO> getLessonBoardListForMain() throws SQLException {
		return lessonBoardDao.getLessonBoardListForMain();
	}



}
